package collection;

import exception.CollectionEmptyException;

public abstract class AList<E> implements IList<E> {

	@Override
	public abstract E first() throws CollectionEmptyException;

	@Override
	public abstract IList<E> rest() throws CollectionEmptyException;

	@Override
	public abstract boolean isEmpty();
	
	@Override
	public abstract <T> T accept(IListVisitor<E, T> visitor);
	
}
